#ifndef _MUMZIK_H_
#define _MUMZIK_H_

#include <stdio.h>
#include "Basket.h"

class Mumzik
{
private:
	size_t static const MIN_NUM_BASKET = 5; // minimum number of basket's

	size_t number_of_basket; // number mumzik's baskets
	Basket *beg; // pointer to the first basket
	Basket *end; // pointer to the element following the last
	Basket *current; // pointer to the current basket

public:
	Mumzik ();
	Mumzik (size_t N);
	~Mumzik ();

	// set a pointer to the current element at the begginning of the array
	void Res_cur_beg ();

	// set a pointer to the current element at the end of the array
	void Res_cur_end ();

	/* Add apples in the current basket.
	*current* is shifted by one element to the left
	if it isn't end of the array  
	size_t N - number of apples to add
	*/
	void Add_apples (size_t N);

	/* Get apples from the current basket
	*current* is shifted by one element to the right
	if it isn't beginning of the array
	*/
	size_t Get_apples ();

	/* Reset basket's number
	Old data of apples in the baskets aren't saved
	size_t N - new basket's number  
	*/
	void Change_num_basket (size_t N);

	// Return *beg*
	Basket* get_beg () const;

	// Return *end*
	Basket* get_end () const;

	// Return *current*
	Basket* get_current () const;
};

#endif